const express = require('express')
const cors = require('cors')
const app = express()

// 静态资源托管
app.use('/uploads', express.static('uploads'))
// 允许所有来源的请求
app.use(cors())
// 添加中间件解析JSON请求体
app.use(express.json())
// 引入multer中间件 处理文件上传
const multer = require('multer')
// 配置仓库规则
const storage = multer.diskStorage({
  destination: 'uploads/', // 存入哪个仓库
  limits: {
    fileSize: 10 * 1024 * 1024,
  },
  filename: (req, file, cb) => {
    // 生成唯一快递单号（防止重名）
    const uniqueName = Date.now() + '-' + file.originalname
    console.log('收到文件：', file)
    cb(null, uniqueName)
  },
})
// 创建快递处理员
const upload = multer({ storage })

app.post('/getdata', (req, res) => {
  // req 是前端发过来的请求
  // res 是后端给客户端的响应
  console.log(req.body)
  if (req.body.flag === true) {
    let data = {
      status: true,
      dataBody: {
        username: 'admin',
        motto: '我就是一条测试的数据。',
      },
    }
    res.json(data)
  } else {
    res.send('error!')
  }
})

// 使用中间件处理图片并回传前端地址
app.post('/uploadImage', upload.single('file'), (req, res) => {
  // 文件已自动存入 uploads/ 目录
  const file = req.file
  console.log(file)
  console.table(req.body)
  if (!req.file) {
    return res.status(400).json({ error: '文件上传失败' })
  }
  // 返回取件地址（图片URL）
  res.json({
    url: `http://localhost:3000/uploads/${file.filename}`,
    alt: `${file.originalname}`,
    href: `http://localhost:3000/uploads/${file.filename}`,
  })
})

app.listen(3000, () => {
  console.log('Server is running on port 3000')
})
